#pragma once

#include <string>

class MQTTClientInterface
{
public:
    virtual ~MQTTClientInterface() = default;

public:
    virtual bool connect()                                                           = 0;
    virtual void disconnect()                                                        = 0;
    virtual bool subscribe(const std::string &topic, int qos)                        = 0;
    virtual bool unsubscribe(const std::string &topic)                               = 0;
    virtual bool publish(const std::string &topic, const std::string &data, int qos) = 0;
};